package com.dhcc.DRGsHosp.facade;

import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;

/**
 * @title		:QuotaFacade.java
 * @description	:
 * @author		:lileizheng
 * @date		:2016年6月12日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface QuotaFacade {

	/**
	 * @methodname    :getQuotas
	 * @description   :获取页面指标配置
	 * @param         :
	 * @author        :lileizheng
	 * @param pageCode 
	 * @param userCode 
	 * @return        :
	 * @date          :2016年6月7日
	 */
	public InvokeResult getQuotas(String roleCode, String userCode, String pageCode);

	/**
	 * @methodname    :saveQuotas
	 * @description   :保存页面指标配置
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月8日
	 */
	public InvokeResult saveQuotas(Map<String, Object> json);

	/**
	 * @methodname    :getQuotaList
	 * @description   :获取指标列表
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月12日
	 */
	public InvokeResult getQuotaList(String quotaType);

	/**
	 * @methodname    :getQuotaByCode
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月12日
	 */
	public InvokeResult getQuotaByCode(String quotaCode);

	/**
	 * @methodname    :saveQuota
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月13日
	 */
	public InvokeResult saveQuota(Map<String, Object> json);

	/**
	 * @methodname    :delQuota
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月13日
	 */
	public InvokeResult delQuota(String quotaCode);

	/**
	 * @methodname    :getQuotaRelease
	 * @description   :获取关联指标
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月13日
	 */
	public InvokeResult getQuotaRelease(String quotaCode);

	/**
	 * @methodname    :saveQuotaReleaseList
	 * @description   :保存关联指标列表
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月14日
	 */
	public InvokeResult saveQuotaRelease(Map<String, Object> json);

	/**
	 * @methodname    :delInvalidReleaseQuotas
	 * @description   :删除无效的关联指标
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月14日
	 */
	public InvokeResult delInvalidReleaseQuotas(String param, String quotaCode);

	/**
	 * @methodname    :emptyQuotaSetting
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年6月15日
	 */
	public InvokeResult emptyQuotaSetting(String userCode, String roleCode);

	/**
	 * @methodname    :deleteQuotaSettingByCode
	 * @description   :删除单一指标配置
	 * @param         :
	 * @author        :lileizheng
	 * @param id 
	 * @param pid 
	 * @return        :
	 * @date          :2016年7月5日
	 */
	public InvokeResult deleteQuotaSettingByCode(String quotaCode,	String roleCode, String pid, String id);


	/**
	 * @methodname    :clearQuotaSettings
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年8月2日
	 */
	public InvokeResult clearQuotaSettings(String userCode, String roleCode,
			String pageCode);

	/**
	 * @methodname    :getQuotaByDesc
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2016年9月12日
	 */
	InvokeResult getQuotaByDesc(String quotaDesc);
/**
 * 
 *  allUpdateQuotaSql.  
 *  @Description：批量更新sql
 *  @Author LiuHongjun
 *  @return 
 *  @Date:2017年7月20日下午2:10:42
 */
	public InvokeResult allUpdateQuotaSql();
/**
 *  getQuotasByRole.  
 *  @Description：
 *  @Author LiuHongjun
 *  @param roleCode
 *  @param userCode
 *  @return 
 *  @Date:2017年7月27日下午4:26:42
 */
public InvokeResult getQuotasByRole(String roleCode, String userCode);
/**
 * 
 *  getQuotaRoleList.  
 *  @Description：：获取用户角色授权的添加列表
 *  @Author LiuHongjun
 *  @param quotaType
 *  @return 
 *  @Date:2017年7月27日下午5:46:57
 */
public InvokeResult getQuotaRoleList(String quotaType);
/**
 * 
 *  adminSaveQuotas.  
 *  @Description：存储管理员下配置指标
 *  @Author LiuHongjun
 *  @param json
 *  @return 
 *  @Date:2017年7月28日下午2:55:12
 */
public InvokeResult adminSaveQuotas(Map<String, Object> json);
/**
 * 
 *  updatePagesQuotas.  
 *  @Description：页面指标配置更新
 *  @Author LiuHongjun
 *  @param json
 *  @return 
 *  @Date:2017年7月28日下午3:33:22
 */
public InvokeResult updatePagesQuotas(Map<String, Object> json);

}
